package com.colin.library.help;

import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.Priority;

/**
 * Created by Colin on 2017/2/14.
 */
public class ImageLoader {
    //内部类Holder只有在getInstance()方法第一次调用的时候才会被加载（实现了lazy），而且其加载过程是线程安全的（实现线程安全）。
    // 内部类加载的时候实例化一次instance。
    public static class Holder {
        static ImageLoader instance = new ImageLoader();
    }

    private ImageLoader() {
    }

    public static ImageLoader getInstance() {
        return Holder.instance;
    }

    /**
     * Glide.with()使用
     * <p>
     * with(Context context).                           使用Application上下文，Glide请求将不受Activity/Fragment生命周期控制。
     * with(Activity activity).                         使用Activity作为上下文，Glide的请求会受到Activity生命周期控制。
     * with(FragmentActivity activity).                 Glide的请求会受到FragmentActivity生命周期控制。
     * with(android.app.Fragment fragment).             Glide的请求会受到Fragment 生命周期控制。
     * with(android.support.v4.app.Fragment fragment).  Glide的请求会受到Fragment生命周期控制
     *
     * @param imageView
     * @param image_url
     */
    public void loadImageByGlide(ImageView imageView, String image_url) {
        Glide.with(imageView.getContext())
                .load(image_url)
                .priority(Priority.HIGH)
                .into(imageView);
    }
}
